//package org.aarboard.nextcloud.api.dicom;
//
//import ij.ImageStack;
//import ij.plugin.DICOM;
//
//import javax.imageio.ImageIO;
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//
//public class FileUtil {
//
//    public static void main(String[] args) throws Exception {  //已经导入两个工具类、并且导入需要的jar包后，在这里进行测试
//        allDicom("C:\\Users\\Administrator\\Desktop\\新建文件夹\\1b9baeb16d2aeba13bed71045df1bc65\\series-000001");  //生成的图片仍在该文件夹中
//    }
//    public static void allDicom (String dicomPath)throws Exception {
//        List<String> fileNames = new ArrayList<String>();
//        FileUtil.findFileList(new File(dicomPath),fileNames,".dcm");
//        System.out.println();
//        for (String value :  fileNames) {
//            create2(value);         //找到dicom文件，并生成底片
//            System.out.println("file:"+value);
//        }
//
//    }
//
//    //返回图片地址列表
//    public static List<String> chooseImage (String dicomPath)throws Exception {
//        List<String> fileNames = new ArrayList<String>();
//        findFileList(new File(dicomPath),fileNames,".jpg");
//        System.out.println();
//        return fileNames;
//    }
//
//
//    /**
//     * 读取目录下的所有文件
//     * 这里仅仅遍历了最外层的dicom文件，可以根据需要改变循环代码，获取文件列表
//     */
//    public static void findFileList(File dir, List<String> fileNames,String houzhui) {
//        if (!dir.exists() || !dir.isDirectory()) {// 判断是否存在目录
//            return;
//        }
//        String[] files = dir.list();// 读取目录下的所有目录文件信息
//        for (int i = 0; i < files.length; i++) {// 循环，添加文件名或回调自身
//            File file = new File(dir, files[i]);
////            int flag=0;
//            if (file.isFile() && file.getName().toLowerCase().endsWith(houzhui) ) {// 如果是文件
//                fileNames.add(dir + "\\" + file.getName());// 添加文件全路径名
//            } else {// 如果是目录
//                System.out.println(file.getName());
//                if(!file.getName().equals("rest") && !file.getName().equals("stress"))
//                    findFileList(file, fileNames,houzhui);// 回调自身继续查询
//            }
//        }
//    }
//
//    /**
//     * 输入一个dicom文件的绝对路径和名字，对文件中的三维数组进行处理，并生成图片
//     */
//    public static void create2(String filePath) {
//        try {
//            DICOM dicom = new DICOM();
//            dicom.run(filePath);
//            ImageStack stack=dicom.getStack();
//            int length=stack.getSize();
//            for(int num=1;num<=length;num++){
//                Object i=stack.getPixels(num);
//                short[] j=(short[]) i;
//                int count = j.length;
//                byte[] dest = new byte[4096];
//                for (int n = 0; n < count; n++) {
//                    dest[n] = (byte) (j[n] >> 0);
//                }
//
//                BufferedImage bi = (BufferedImage) dicom.getImage();
//                bi.getRaster().setDataElements(0,0,64,64,dest);
//                String imagePath = filePath.substring(0,filePath.length()-4)+num+ ".jpg";
//                ImageIO.write(bi, "jpg", new File(imagePath));
//
//                File file=new File(imagePath);
//                String outPath=filePath.substring(0,filePath.length()-4)+"-"+num+".jpg";
//                File file2=new File(outPath);
//                try {
//                    BufferedImage image=ImageIO.read(file);
//                    //图片反色
//                    ImageIO.write(inverse(image), "jpg", file2);//保存转换后的图片
//                    if (file.exists() && file.isFile()) {   //删除原图片
//                        if (file.delete()) {
//                        } else {
//                            System.out.println("删除单个文件" + file + "失败！");
//                        }
//                    } else {
//                        System.out.println("删除单个文件失败：" + file + "不存在！");
//                    }
//                    MyImage.fangDa(outPath,640,640); //放大取反后的图片
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
//            System.out.println("Success!!!");
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    //图片反色处理
//    public static BufferedImage inverse(BufferedImage image)
//    {
//        BufferedImage createImage=null;
//        if(image!=null)
//        {
//            int width=0;
//            int height=0;
//            width=image.getWidth();
//            height=image.getHeight();
//            int imageRGB[]=new int[width*height];
//            image.getRGB(0, 0, width, height, imageRGB, 0, width);
//            createImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//            for(int i=0;i<imageRGB.length;i++)
//            {
//                imageRGB[i]=imageRGB[i]^0xffffffff;
//            }
//            createImage.setRGB(0, 0, width, height, imageRGB, 0, width);
//            imageRGB=null;
//        }
//        return createImage;
//    }
//}
